package com.ruoyi.domain.production;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 生产领料单对象 mes_production_picking
 * 
 * @author ruoyi
 * @date 2024-01-01
 */
public class MesProductionPicking extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 领料单ID */
    private Long pickingId;

    /** 领料单号 */
    @Excel(name = "领料单号")
    private String pickingCode;

    /** 工单ID */
    @Excel(name = "工单ID")
    private Long workOrderId;

    /** 工单编号 */
    @Excel(name = "工单编号")
    private String workOrderCode;

    /** 领料日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "领料日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date pickingDate;

    /** 领料仓库ID */
    @Excel(name = "领料仓库ID")
    private Long warehouseId;

    /** 仓库名称 */
    @Excel(name = "仓库名称")
    private String warehouseName;

    /** 领料人ID */
    @Excel(name = "领料人ID")
    private Long pickerId;

    /** 领料人姓名 */
    @Excel(name = "领料人姓名")
    private String pickerName;

    /** 审批人ID */
    @Excel(name = "审批人ID")
    private Long approverId;

    /** 审批人姓名 */
    @Excel(name = "审批人姓名")
    private String approverName;

    /** 审批时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "审批时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date approveTime;

    /** 状态 (待领料, 已领料, 部分领料, 已取消) */
    @Excel(name = "状态", readConverterExp = "待领料,已领料,部分领料,已取消")
    private String status;

    /** 领料总金额 */
    @Excel(name = "领料总金额")
    private BigDecimal totalAmount;

    /** 领料单明细信息 */
    private List<MesProductionPickingDetail> pickingDetailList;

    public void setPickingId(Long pickingId) 
    {
        this.pickingId = pickingId;
    }

    public Long getPickingId() 
    {
        return pickingId;
    }
    public void setPickingCode(String pickingCode) 
    {
        this.pickingCode = pickingCode;
    }

    public String getPickingCode() 
    {
        return pickingCode;
    }
    public void setWorkOrderId(Long workOrderId) 
    {
        this.workOrderId = workOrderId;
    }

    public Long getWorkOrderId() 
    {
        return workOrderId;
    }
    public void setWorkOrderCode(String workOrderCode) 
    {
        this.workOrderCode = workOrderCode;
    }

    public String getWorkOrderCode() 
    {
        return workOrderCode;
    }
    public void setPickingDate(Date pickingDate) 
    {
        this.pickingDate = pickingDate;
    }

    public Date getPickingDate() 
    {
        return pickingDate;
    }
    public void setWarehouseId(Long warehouseId) 
    {
        this.warehouseId = warehouseId;
    }

    public Long getWarehouseId() 
    {
        return warehouseId;
    }
    public void setWarehouseName(String warehouseName) 
    {
        this.warehouseName = warehouseName;
    }

    public String getWarehouseName() 
    {
        return warehouseName;
    }
    public void setPickerId(Long pickerId) 
    {
        this.pickerId = pickerId;
    }

    public Long getPickerId() 
    {
        return pickerId;
    }
    public void setPickerName(String pickerName) 
    {
        this.pickerName = pickerName;
    }

    public String getPickerName() 
    {
        return pickerName;
    }
    public void setApproverId(Long approverId) 
    {
        this.approverId = approverId;
    }

    public Long getApproverId() 
    {
        return approverId;
    }
    public void setApproverName(String approverName) 
    {
        this.approverName = approverName;
    }

    public String getApproverName() 
    {
        return approverName;
    }
    public void setApproveTime(Date approveTime) 
    {
        this.approveTime = approveTime;
    }

    public Date getApproveTime() 
    {
        return approveTime;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setTotalAmount(BigDecimal totalAmount) 
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount() 
    {
        return totalAmount;
    }

    public List<MesProductionPickingDetail> getPickingDetailList()
    {
        return pickingDetailList;
    }

    public void setPickingDetailList(List<MesProductionPickingDetail> pickingDetailList)
    {
        this.pickingDetailList = pickingDetailList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("pickingId", getPickingId())
            .append("pickingCode", getPickingCode())
            .append("workOrderId", getWorkOrderId())
            .append("workOrderCode", getWorkOrderCode())
            .append("pickingDate", getPickingDate())
            .append("warehouseId", getWarehouseId())
            .append("warehouseName", getWarehouseName())
            .append("pickerId", getPickerId())
            .append("pickerName", getPickerName())
            .append("approverId", getApproverId())
            .append("approverName", getApproverName())
            .append("approveTime", getApproveTime())
            .append("status", getStatus())
            .append("totalAmount", getTotalAmount())
            .append("remark", getRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("pickingDetailList", getPickingDetailList())
            .toString();
    }
}